/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufc.quixada.adrs.dao;

import br.ufc.quixada.adrs.dao.config.PostGresMapConfig;
import br.ufc.quixada.adrs.model.TipoAnimal;
import java.sql.SQLException;
import java.util.List;

/**
 *
 * @author fernando
 */
public class TipoAnimalDAO {

    public void insert(TipoAnimal tipoAnimal) throws SQLException {
        tipoAnimal.setId(getProxId());
        PostGresMapConfig.getSqlMapClient().insert("addTipoAnimal", tipoAnimal);
    }

    public void update(TipoAnimal tipoAnimal) throws SQLException {
        PostGresMapConfig.getSqlMapClient().update("updateTipoAnimal", tipoAnimal);
    }

    public void delete(Integer id) throws SQLException {
        PostGresMapConfig.getSqlMapClient().delete("deleteTipoAnimal", id);
    }

    public TipoAnimal getById(Long id) throws SQLException {
        return (TipoAnimal) PostGresMapConfig.getSqlMapClient().queryForObject("getTipoAnimalById", id);
    }

    public List<TipoAnimal> getByTipo(String tipo) throws SQLException {
        tipo = "%" + tipo + "%";
        return (List<TipoAnimal>) PostGresMapConfig.getSqlMapClient().queryForList("getTipoAnimalByTipo", tipo);
    }

    public List<TipoAnimal> getAll() throws SQLException {
        return (List<TipoAnimal>) PostGresMapConfig.getSqlMapClient().queryForList("getAllTipoAnimal");
    }

    private Long getProxId() throws SQLException {
        Long id = (Long) PostGresMapConfig.getSqlMapClient().queryForObject("getMaxId");
        if (id == null) {
            id = 0L;
        }
        return id + 1L;
    }

    public TipoAnimal getUnicoByTipo(String tipo) throws SQLException {
        return (TipoAnimal) PostGresMapConfig.getSqlMapClient().queryForObject("getUnicoTipoAnimalByTipo", tipo);
    }
}
